package vue;

import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.LayoutManager;

import javax.swing.JLabel;
import javax.swing.JPanel;
/*Cette classe est un JPanel utilisé pour tracer un axe des Ordonnées ou des Absisses
 * Le constructeur prend un int 'longueur' et un boolean 'orientation'
 * true : horizontal et false :vertical
 * sa taille (setPreferredSize) n'est pas importante en soit car ce JPanel sera ajouté à un
 * container qui possede un BorderLayout (WEST pour Ordonnées et NORTH pour Abscisse)
 * Donc il prendra respectivement toute la hauteur ou toute la largeur.
 */
import javax.swing.JTextField;

import sun.font.FontFamily;


public class Axe extends JPanel {

	private int longueur;
	private boolean orientation;
	//true pour horizontal, false pour vertical
	private JLabel[] lesLabels;
	private int pas=100;
	/*le pas, c'est la taille des JLabel qui contiennent la graduation de la regle : 50,100,150..
	*ces Textes sont alignés à droite dans le JLabel
	*_________________________________
	*|                         100 ||                         150 |
	*|________________||________________|
	*/
	public Axe(int x,boolean orientation) {
		super();
		this.longueur = x;
		this.orientation = orientation;
		if (orientation) this.setPreferredSize(new Dimension(x,28));
		else this.setPreferredSize(new Dimension(28,x));
		this.setBackground(Color.lightGray);
		this.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));
			
		
		this.lesLabels = new JLabel[this.longueur/this.pas-1];
		for (int i=0;i<lesLabels.length;i++)
		{
			lesLabels[i] = new JLabel();
			lesLabels[i].setFont(new Font("Arial", Font.ITALIC, 10));
		
			if (orientation) {
				lesLabels[i].setHorizontalAlignment(JTextField.RIGHT);
				lesLabels[i].setPreferredSize(new Dimension(this.pas,28));
			}
			else {
				lesLabels[i].setHorizontalAlignment(JTextField.LEFT);
				lesLabels[i].setVerticalAlignment(JTextField.BOTTOM);
				lesLabels[i].setPreferredSize(new Dimension(28,this.pas));
			}
			//lesLabels[i].setBackground(Color.yellow);
			//lesLabels[i].setOpaque(true);
			lesLabels[i].setText(String.valueOf((i+1)*this.pas));
			this.add(lesLabels[i]);
		}
	}
	
	public void paintComponent(Graphics g) {
		super.paintComponent(g);
		g.setColor(Color.black);
		//ici la boucle qui dessine les petits traits
		for(int i=this.pas/2;i<this.longueur;i=i+this.pas/2)
		{
			if (orientation) {	
				if (i%100 == 0) g.drawLine(i, 0, i, 7);
				else g.drawLine(i, 0, i, 2);
				}
			else {
				if (i%100 == 0) g.drawLine(0,i,7,i);
				else g.drawLine(0, i, 2, i);
				}
		}
	
	
}


}